package com.nlscan.qdkit.ui.publico.util;

import com.quvii.qvlib.constant.QvTimeConstants;

/**
 * <pre>
 *     author: Qing
 *     time  : 2019/5/27
 *     desc  : 日历相关工具类
 * </pre>
 * 1. 月份 （1-12）
 */
public class CalendarUtils {

    /**
     * 获取某月的天数
     *
     * @param year  年
     * @param month 月（1-12）
     * @return 某月的天数
     */
    public static int getMonthDaysCount(int year, int month) {
        int count = 0;
        //判断大月份
        if (month == 1 || month == 3 || month == 5 || month == 7
                || month == 8 || month == 10 || month == 12) {
            count = 31;
        }

        //判断小月
        if (month == 4 || month == 6 || month == 9 || month == 11) {
            count = 30;
        }

        //判断平年与闰年
        if (month == 2) {
            if (isLeapYear(year)) {
                count = 29;
            } else {
                count = 28;
            }
        }
        return count;
    }

    /**
     * 是否是闰年
     *
     * @param year year
     * @return 是否是闰年
     */
    public static boolean isLeapYear(int year) {
        return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
    }


    /**
     * 输出格式日期
     *
     * @param year
     * @param month  (1-12)
     * @param day
     * @param format
     * @return
     */
    public static String toString(int year, int month, int day, final String format) {
        String strYear = "" + year;
        String strMonth = month < 10 ? "0" + month : "" + month;
        String strDay = day < 10 ? "0" + day : "" + day;
        String time = null;
        switch (format) {
            case QvTimeConstants.DATE_FORMAT_YYYY_MM_DD:
                time = strYear + "-" + strMonth + "-" + strDay;
                break;
        }
        return time;
    }
}
